查看原文
其他

网络配置:net-tools工具包

Cloud研习社 Cloud研习社 2023-06-06

教程每周二、四、六更新


本节讲解net-tools工具包,虽然从centos7开始已经弃用,但是老的工程师还在用,所以,我们也得会。


ifconfig命令



ifconfig是常见的查看网络配置情况的命令,也可以对网络做配置:

# 查看全部接口信息
ifconfig [-a]

#
 查看特定网卡的信息
ifconfig [interface]

#
 开其或关闭特定的网卡
ifconfig [interface] [up|down]

#
 给某个网卡配置地址信息
ifconfig [interface] IP netmask netmask


实例演示:

# 查看网卡信息
[root@cloudstudy ~]# ifconfig ens33 # 查看特定网卡的信息
[root@cloudstudy ~]# ifconfig # 查看up状态(激活状态)的网卡信息
[root@cloudstudy ~]# ifconfig -a # 查看所有网卡信息
        
# 启动或关闭指定网卡
[root@cloudstudy ~]# ifconfig ens38 down # 这一步操作完成,ifconfig就看不到该网卡了,只能用ifconfig -a才能看到
[root@cloudstudy ~]# ifconfig ens38
ens38: flags=4098<BROADCAST,MULTICAST> mtu 1500
        ether 00:0c:29:75:96:6c txqueuelen 1000  (Ethernet)
        RX packets 5665181  bytes 358619644 (342.0 MiB)
        RX errors 0  dropped 39597  overruns 0  frame 0
        TX packets 35074  bytes 5732430 (5.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@cloudstudy ~]# ifconfig ens38 up

# 配置IP地址(两种形式都可以配置成功,第二种是带有netmask的配置方式)
[root@cloudstudy ~]# ifconfig ens34 10.0.0.138
[root@cloudstudy ~]# ifconfig ens34 10.0.0.138 netmask 255.255.255.0

# 确认配置结果
[root@cloudstudy ~]# ifconfig ens34
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 10.0.0.138  netmask 255.255.255.0  broadcast 10.0.0.255
        ether 00:0c:29:75:96:62  txqueuelen 1000  (Ethernet)
        RX packets 123036  bytes 7545231 (7.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 57  bytes 10359 (10.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


注意:通过ifconfig配置的信息,是即时生效的,但是也只是临时生效,一旦重启,配置全部都会丢失。所以ifconfig命令在生产中,一般不用做配置网卡信息的命令。实际工作中,我们大多只用它来查看网卡信息。


route命令




route命令用于显示和操作IP路由表。在排查网络故障时常会用到。

使用格式:

route [-v] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

route [-v] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]


参数说明:

add:添加一条新路由。

del:删除一条路由。

-net: 目标地址是一个网络。

-host: 目标地址是一个主机。

netmask:当添加一个网络路由时,需要使用网络掩码。

gw:路由数据包通过网关。注意,你指定的网关必须能够达到。

我们通过实例来看一下:

# 查看路由信息。
[root@cloudstudy ~]# route -n    # 加上-n选项,
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100 0 0 ens33
10.0.0.0        0.0.0.0         255.255.255.0   U     100 0 0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0 0 0 virbr0
[root@cloudstudy ~]# route      # 去掉-n选项。和加-n的区别是,这里把对应的名字打出来了,加上-n以后就只显示IP地址,不显示名字
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100 0 0 ens33
10.0.0.0        0.0.0.0         255.255.255.0   U     100 0 0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0 0 0 virbr0


说明:

第1行表示数据传送目的是访问Internet,则由接口ens33,将数据包发送到网关10.0.0.2

其中Flags为路由标志,标记当前网络节点的状态。

Flags标志说明:

U Up表示此路由当前为启动状态

H Host,表示此网关为一主机

G Gateway,表示此网关为一路由器

R Reinstate Route,使用动态路由重新初始化的路由

D Dynamically,此路由是动态性地写入

M Modified,此路由是由路由守护程序或导向器动态修改

! 表示此路由当前为关闭状态


备注:

route -n (-n 表示不解析名字,列出速度会比route 快)

设置默认网关

route add default gw  10.0.0.2
route del default gw  10.0.0.2


设置普通路由

# 添加或删除单个IP
[root@cloudstudy ~]# route add -host 172.18.2.1 gw 10.0.0.2
# 说明:到172.18.2.1主机的包,都通过10.0.0.2这个网关发送出去
[root@cloudstudy ~]# route del -host 172.18.2.1 gw 10.0.0.2
# 删除上面的路由

# 添加或删除一个网段
# 方法1:
[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2 
# 说明:去往172.18.2.0网段(掩码是24位的)的数据包都经过网关10.0.0.2发送出去。
[root@cloudstudy ~]# route del -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2
# 删除上面的路由

# 方法2:
[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2 dev ens33      # 指定通过ens33网卡发送
[root@cloudstudy ~]# route del -net 172.18.2.0 netmask 255.255.255.0 gw 10.0.0.2 dev ens33


屏蔽一条路由

[root@cloudstudy ~]# route add -net 172.18.2.0 netmask 255.255.255.0 reject


说明:发往172.18.2.0/24地址段的都会被拒绝

注意:route设置的路由,都是即时且临时生效,一但系统重启,route的设置都会丢失。【永久保存方法我们后面再讲】


netstat命令



netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态。

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]


常见参数:

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。


提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

实例演示:

# 列出所有端口(包括监听和未监听的)
[root@cloudstudy ~]# netstat -a
# 列出所有tcp端口
[root@cloudstudy ~]# netstat -at
# 列出所有udp端口
[root@cloudstudy ~]# netstat -au

# 列出所有处于监听状态(listen)的socket
[root@cloudstudy ~]# netstat -l
# 列出所有处于监听状态(listen)的tcp socket
[root@cloudstudy ~]# netstat -lt
# 列出所有处于监听状态(listen)的UDP socket
[root@cloudstudy ~]# netstat -lu

# 显示每个协议的统计信息
[root@cloudstudy ~]# netstat -s
Ip:
    9334 total packets received
    0 forwarded
    0 incoming packets discarded
    1649 incoming packets delivered
    1040 requests sent out
    7 outgoing packets dropped
...
Tcp:
    0 active connections openings
    1 passive connection openings
    0 failed connection attempts
    0 connection resets received
    1 connections established
    1337 segments received
    878 segments send out
    0 segments retransmited
    0 bad segments received.
    0 resets sent
Udp:
    176 packets received
    16 packets to unknown port received.
    0 packet receive errors
    194 packets sent
    0 receive buffer errors
    0 send buffer errors
...

# 查看当前所有TCP端口的占用情况,不显示名字,只显示数字信息
[root@cloudstudy ~]# netstat -ant




带你学Linux  云计算  运维。7月31日24时停止暑期集训加入

课程特色:

  1. 量身定制学习计划、正规出版社书籍电子版;
  2. 雷哥一对一答疑(集中做计划学习一个月,答疑有效期一年);
  3. 雷哥督促学习进度。
  4. 点我查看详情
长按下方卡片加入带学团


推荐阅读


《一站式教程之集群架构》:

从约领导吃饭理解三次握手、四次挥手

TCP半连接、全连接全在这里了

带你疑问搞定TCP重传(内附实例讲解)

TCP拥塞控制

网络层常见协议

一文彻底搞懂IP地址知识(值得收藏的手册)

老司机:子网掩码我不怕,怕的是子网划分!

关于dhcp,看这一篇就够了!



看完本文有收获?请分享给更多人

推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存